package com.pay.service.open.api;

import com.pay.controller.open.api.dto.req.PaymentInfoDTO;
import com.pay.entity.PaymentInfoDO;

/**
 * @author 周益和
 * @ClassName OpenPaymentCoreService
 * @qq 1552951165
 */
public interface OpenPaymentCoreService {
    /**
     * 创建PayToken
     * @param paymentInfoDto
     * @return
     */
    String createPayToken(PaymentInfoDTO paymentInfoDto);
    
    /**
     * 根据支付令牌获取支付的参数信息
     * @param payToken
     * @return
     */
    PaymentInfoDO getPayTokenPaymentInfo(String payToken);
    
    /**
     * 根据订单号获取支付信息
     * @param orderId
     * @return
     */
    PaymentInfoDO getPaymentInfoByOrderId(String orderId);
    
    /**
     * 更新支付状态
     * @param paymentInfo
     * @param paymentStatus
     * @return
     */
    int updatePaymentStatus(PaymentInfoDO paymentInfo, Integer paymentStatus);
    
    /**
     *  更新支付状态为成功
     * @param paymentInfo
     * @return
     */
    int updatePaymentStatusOk(PaymentInfoDO paymentInfo);
}
